# 参数默认值
def greet(name="用户"):
    """带默认参数的函数示例"""
    print(f"你好, {name}!")


# 多返回值
def get_coordinates():
    """返回多个值的函数"""
    return 100.123, 45.678  # 实际返回元组


# 可变参数
def sum_numbers(*args):
    """接收任意数量参数的函数"""
    print("参数列表:", args)  # 输出参数元组
    return sum(args)


# 关键字参数
def print_info(**kwargs):
    """接收任意数量关键字参数的函数"""
    print("关键字参数:", kwargs)  # 输出参数字典


# 演示代码
greet()  # 使用默认值
greet("张三")  # 覆盖默认值

lat, lon = get_coordinates()
print(f"经纬度: {lat}, {lon}")

total = sum_numbers(1, 2, 3, 4)
print(f"总和: {total}")

print_info(name="张三", age=25, city="北京")


# -------------------------------------------------------------
# 综合参数示例
def complex_args(a, b=2, *args, **kwargs):
    """展示位置参数、默认参数、*args和**kwargs的解析顺序"""
    print(f"位置参数: a={a}, b={b}")
    print(f"可变位置参数: args={args}")
    print(f"关键字参数: kwargs={kwargs}")


# 演示代码
print("\n综合参数示例:")
complex_args(1)  # 只提供位置参数a
print("-" * 20)
complex_args(1, 3)  # 提供位置参数a和b
print("-" * 20)
complex_args(1, 3, 4, 5, 6)  # 提供位置参数和可变位置参数
print("-" * 20)
complex_args(1, 3, 4, 5, x=7, y=8)  # 提供所有类型参数
